package groovy

/**
 * @author : zenghua
 * @version : v0.1 IOTest.java
 * @since : 2017/9/14 10:55
 */
class IOTest {

    static void main(args) {
        def test = new IOTest();
//        test.readTxt();
        test.readXml();
    }

    /**
     * 参考地址：
     * http://groovy-lang.org/processing-xml.html
     */
    def readXml() {
//       def file = File("");
        def text = '''
            <list>
                <technology>
                    <name>Groovy</name>
                </technology>
            </list>
        '''
        //返回GPathResult，有延时加载功能（如果节点发生变化，会重新读取xml）
        def list = new XmlSlurper().parseText(text)
        assert list instanceof groovy.util.slurpersupport.GPathResult
        assert list.technology.name == 'Groovy';

        //返回Node节点
        def list2 = new XmlParser().parseText(text)
        assert list2 instanceof groovy.util.Node;
        assert list2.technology.name.text() == 'Groovy';
    }

    /**
     * 读取txt
     * @return
     */
    def readTxt() {
        try {
            new File("c:/test.txt").eachLine {
                //lineContent参数表示读取每一行的内容，参数可以自定义
                lineContent,i -> println "line $i : $lineContent";
            }
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }
    }
}
